package cmk.lee.easy;

public class Leetcode_9 {
	/*
	 * 判断一个整数是否是回文数。回文数是指正序（从左向右）和倒序（从右向左）读都是一样的整数。
	 * 例如：121 : true
	 *      232 : true
	 */
	public static void main(String[] args) {
		System.out.println(isPalindrome(11));
	}

	public static boolean isPalindrome(int x) {
		/* 执行用时: 13 ms 内存消耗: 37.9 MB
		 * long target = x;
		 * long n = 0;
		 * if (target <= 0 || target % 10 == 0)
		 * return false;
		 * while (target != 0) {
		 *  n = n * 10 + target % 10;
		 *  target /= 10;
		 *  }
		 *  return (int) n == x;
		 */

		/*
		 * 执行用时： 9 ms , 在所有 Java 提交中击败了 99.45% 的用户
		 * 内存消耗： 37.8 MB , 在所有 Java 提交中击败了87.64% 的用户
		 */
		if (x < 0 || (x % 10 == 0 && x != 0)) {
            return false;
        }
        int n = 0;
        while (x>n) {
            n = n * 10 + x % 10;
            x /= 10;
        }
		// 奇偶判断
		/**
		 * 如 11
		 * n = 1;
		 * x = 1;  x==n;
		 * 如 121
		 * n = 1
		 * x = 12
		 * (n= 10 + 2 =12 >x=2)没进入while
		 * n = 1 = x/10 = 1
		 **/
        return x == n/10||x==n;
	}

}
